<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	xmlns:p="http://primefaces.org/ui">
	<h:form id="listForm">
		<p:contextMenu for="listHotel">
			<p:menuitem value="Mostra Dettagli" icon="ui-icon-info"
				onclick="PF('dlgDettagliHotel').show();" update="hotelDettagliPanel" />
			<p:menuitem value="Modifica" icon="ui-icon-pencil"
				onclick="PF('dlgHotel').show();" update="hotelPanel, :messages"
				rendered="#{empty isAgent ? 'false' : 'true'}" />
			<p:menuitem value="Elimina" update="listHotel, :messages"
				icon="ui-icon-close" actionListener="#{prodottiBean.cancellaHotel}"
				rendered="#{empty isAgent ? 'false' : 'true'}" />
		</p:contextMenu>

		<p:dataTable id="listHotel" var="hotelVar"
			value="#{prodottiBean.listaHotel()}" rowKey="#{hotelVar.idHotel}"
			selection="#{prodottiBean.hotel}" selectionMode="single"
			emptyMessage="Nessun hotel inserito" paginator="true" rows="10"
			rowsPerPageTemplate="5,10,15"
			filteredValue="#{prodottiBean.filteredHotel}">
			<f:facet name="header">Lista Hotel</f:facet>
			<p:column headerText="Nome" filterBy="nome"
				filterMatchMode="contains">
				<h:outputText value="#{hotelVar.nome}" />
			</p:column>
			<p:column headerText="Prezzo">
				<h:outputText value="#{hotelVar.prezzo}" />
			</p:column>
			<p:column headerText="Stelle">
				<p:rating id="stelle" value="#{hotelVar.stelle}" stars="7"
					cancel="false" readonly="true" />
			</p:column>
			<p:column headerText="Località" filterBy="località"
				filterMatchMode="contains">
				<h:outputText value="#{hotelVar.località}" />
			</p:column>
			<f:facet name="footer">
				<h:outputText value="in totale: #{prodottiBean.numHotel} hotel" />
			</f:facet>
		</p:dataTable>


		<p:dialog id="dialogHotel" header="Modifica Hotel"
			widgetVar="dlgHotel" showEffect="clip" hideEffect="clip"
			dynamic="true">

			<p:ajax event="close" update="msgAggiornaHotel, @this" />

			<h:panelGrid id="hotelPanel" columns="3" cellpadding="5">
				<h:outputLabel for="nomeHotel" value="Nome:" />
				<p:inputText id="nomeHotel" label="nomeHotel"
					value="#{prodottiBean.nomeHotelCorrente}">
					<p:ajax event="click" update="msgAggiornaHotel" />
				</p:inputText>
				<p:watermark for="nomeHotel" value="#{prodottiBean.hotel.nome}" />

				<h:outputLabel for="prezzoHotel" value="Prezzo:" />
				<p:inputText id="prezzoHotel" label="prezzoHotel"
					value="#{prodottiBean.prezzoHotelCorrente}"
					validatorMessage="Inserire un numero non negativo o lasciare vuoto">
					<f:validateRegex pattern="[0-9]*" />
					<p:ajax event="click" update="msgAggiornaHotel" />
				</p:inputText>
				<p:watermark for="prezzoHotel" value="#{prodottiBean.hotel.prezzo}" />

				<p:message id="msgPrezzoHotel" for="prezzoHotel" />
				<h:outputLabel></h:outputLabel>
				<h:outputLabel></h:outputLabel>
				
				<h:outputLabel for="stelleHotel" value="Stelle:" />
				<p:rating id="stelleHotel" value="#{prodottiBean.hotel.stelle}" stars="7"
					cancel="false" readonly="true" />
				<p:message id="msgStelleHotel" for="stelleHotel" />

				<h:outputLabel for="localitàHotel" value="Località:" />
				<h:outputLabel id="localitàHotel"
					value="#{prodottiBean.hotel.località}" />
				<h:outputLabel></h:outputLabel>

			</h:panelGrid>
			<p:commandButton id="salvaHotel" value="Salva"
				update="hotelPanel, msgAggiornaHotel, listHotel"
				action="#{prodottiBean.updateHotel()}" />

			<p:messages id="msgAggiornaHotel" showDetail="false"
				autoUpdate="false" closable="true" for="salvaHotel" />
		</p:dialog>


		<p:dialog id="dialogDettagliHotel" header="Dettagli Hotel"
			widgetVar="dlgDettagliHotel" showEffect="clip" hideEffect="clip"
			dynamic="true">
			<h:panelGrid id="hotelDettagliPanel" columns="2" cellpadding="5">
				<h:outputLabel value="Nome:" />
				<h:outputLabel value="#{prodottiBean.hotel.nome}" />

				<h:outputLabel value="Prezzo:" />
				<h:outputLabel value="#{prodottiBean.hotel.prezzo}" />

				<h:outputLabel value="Stelle" />
				<p:rating id="stelle" value="#{prodottiBean.hotel.stelle}" stars="7"
					cancel="false" readonly="true" />

				<h:outputLabel value="Località:" />
				<h:outputLabel value="#{prodottiBean.hotel.località}" />
			</h:panelGrid>
		</p:dialog>
	</h:form>
</ui:composition>